home *** CD-ROM | disk | FTP | other *** search
- /* alternating sum of digits */
-
- #include "defs.h"
-
- int am_sumdigitsalt(int n)
- {
- int i;
- int Sum = 0;
- int PlusMinus = 1;
-
- i=0;
- if(n<0)
- n = -n;
-
- while(n < _am_asciiconv[i])
- i++;
- for(;i < 9;i++)
- {
- if(PlusMinus)
- while(n >= _am_asciiconv[i])
- {
- n -= _am_asciiconv[i];
- Sum++;
- }
- else
- while(n >= _am_asciiconv[i])
- {
- n -= _am_asciiconv[i];
- Sum--;
- }
- PlusMinus = 1 - PlusMinus;
- }
-
- if(PlusMinus)
- return Sum + n;
- else
- return Sum - n;
- }